	.file	"s7.rfact.c"
	.text
	.globl	rfact
	.type	rfact, @function
rfact:
.LFB0:
	.cfi_startproc
	cmpq	$1, %rdi ; Compare n: 1
	jg	.L8
	movl	$1, %eax ; Set return value = 1
	ret ; Return
.L8:
	pushq	%rbx ; Save %rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx ; Store n in callee-saved register
	leaq	-1(%rdi), %rdi ; Compute n-1
	call	rfact ; Call rfact(n-1)
	imulq	%rbx, %rax ; Multiply result by n
	popq	%rbx ; Restore %rbx
	.cfi_def_cfa_offset 8
	ret ; Return
	.cfi_endproc
.LFE0:
	.size	rfact, .-rfact
	.ident	"GCC: (GNU) 14.2.0"
	.section	.note.GNU-stack,"",@progbits
